Network devices employ protocol stacks that organize communication software in hierarchical layers. For instance, TCP/IP (Transmission Control Protocol/Internet Protocol) follows the Open System Interconnection (OSI) Model that has seven-layers, including four upper layers, which are directed to software applications, and three lower layers, which are directed to handling data packets.
Some network protocols transmit packets by dividing them into smaller units in a process called “fragmentation.” When a fragmented packet is transmitted, the packet is reassembled from its constituent fragments at the destination. Generally, the lower layers of the network protocol are responsible for reassembling packets and handing them up to higher layers.
In some networks, fragmentation can improved communication links by reducing bit errors that may occur in transmission of large packets. In other networks, fragmentation can overcome the problem of transmitting packets through networks having different packet size limitations. For instance, the Internet Protocol (IP) fragments packets when they larger than the maximum transmission size of the network over which it must be sent.
Fragmentation can have negative consequences as well. For example, it may result in an excessive number of retransmissions because some network protocols retransmit all of the fragments in order to recover from the loss of a single fragment. Furthermore, there is an overhead cost associated with the transmission each additional fragment.